import request from '@/utils/request'
import { MeetingType } from '@/api/meeting'
import { JsonData } from '@/api/meeting'

export interface Guest {
  id: string
  name: string           // 嘉宾姓名
  title: string          // 添加嘉宾头衔
  imgUrl: string         // 嘉宾照片
  introduction: string  // 嘉宾介绍
  meetId: string  // 确保是字符串类型
}

// 添加GuestResponse接口，与后端匹配
export interface GuestResponse {
  name: string
  title: string
  imgUrl: string
  introduction: string
  meetId: string  // 确保是字符串类型
}

export interface ListGuestRequest {
  page: number
  size: number
  meetId?: string  // 确保是字符串类型
}

export interface ListGuestResponse {
  total_record: number
  total_page: number
  current_data: Guest[]
}

// 获取嘉宾列表
export const getGuestList = (params: ListGuestRequest) => {
  return request.post<any,ListGuestResponse>('/api/guest/list', params)
}

/**
 * 获取嘉宾详情
 * @param id 嘉宾ID
 * @returns 嘉宾详细信息
 */
export const getGuestDetail = (id: string) => {
  return request.get<Guest>(`/api/guest/${id}`)
}

/**
 * 添加嘉宾
 * @param data 嘉宾数据
 * @returns 响应数据
 */
export const addGuest = (data: GuestResponse) => {
  return request.post<JsonData>('/api/guest/add', data)
}

/**
 * 更新嘉宾
 * @param id 嘉宾ID
 * @param data 嘉宾数据
 * @returns 响应数据
 */
export const updateGuest = (id: string, data: GuestResponse) => {
  return request.put(`/api/guest/${id}`, data)
}

/**
 * 删除嘉宾
 * @param id 嘉宾ID
 * @returns 响应数据
 */
export const deleteGuest = (id: string) => {
  return request.delete<JsonData>(`/api/guest/${id}`)
}

/**
 * 上传嘉宾头像图片
 * @param file 图片文件
 * @returns 图片URL
 */
export const uploadGuestImage = (file: File) => {
  const formData = new FormData()
  formData.append('file', file)
  return request.post<{
    code: number
    data: string
    msg: string | null
  }>('/api/guest/upload_img', formData, {
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  }).then(response => response.data)  // 直接返回 response.data
} 